package org.wisdom.ac.apis;

import java.util.List;

import org.springframework.web.bind.annotation.*;
import org.wisdom.ac.dto.RoleDto;
import org.wisdom.annotation.WisdomFeignClient;
import org.wisdom.vo.PageModel;
import org.wisdom.vo.ResponseResult;

/**
 * 角色API
 *
 * @author 张智研
 * @date 2022/05/17 15:05
 **/
@WisdomFeignClient(name = "${wisdom.ac.name:wisdom-ac}", path = "/${wisdom.ac.name:wisdom-ac}/role", contextId = "wisdom-ac-role")
public interface RoleController {

    /**
     * 创建角色
     * 
     * @author 张智研
     * @date 2022/05/31 13:57
     * @param roleDto
     *            角色信息
     * @return org.wisdom.vo.ResponseResult<java.lang.String>
     */
    @PostMapping
    ResponseResult<String> save(@RequestBody RoleDto roleDto);

    /**
     * 读取角色
     * 
     * @author 张智研
     * @date 2022/05/31 14:01
     * @param roleId
     *            角色id
     * @return org.wisdom.vo.ResponseResult<org.wisdom.ac.dto.RoleDto>
     */
    @GetMapping("/{roleId}")
    ResponseResult<RoleDto> get(@PathVariable("roleId") String roleId);

    /**
     * 删除角色
     * 
     * @author 张智研
     * @date 2022/05/31 14:01
     * @param roleIds
     *            角色id
     * @return org.wisdom.vo.ResponseResult<java.lang.String>
     */
    @DeleteMapping("/{roleIds}")
    ResponseResult<String> delete(@PathVariable("roleIds") String roleIds);

    /**
     * 批量删除角色
     * 
     * @author 张智研
     * @date 2022/05/31 14:04
     * @param roleIds
     *            角色id
     * @return org.wisdom.vo.ResponseResult<java.lang.String>
     */
    @DeleteMapping("/batch-delete")
    ResponseResult<String> batchDelete(@RequestParam("roleIds") List<String> roleIds);

    /**
     * 查询角色列表
     * 
     * @author 张智研
     * @date 2022/05/31 15:29
     * @param roleDto
     *            查询条件
     * @return org.wisdom.vo.ResponseResult<org.wisdom.vo.PageModel<org.wisdom.ac.dto.RoleDto>>
     */
    @GetMapping("/list")
    ResponseResult<PageModel<RoleDto>> list(RoleDto roleDto);

}
